/* 
    类型 type=Point|LineString|Circle|Polygon|正方形(Square)|矩形(Box)    
*/
export function createDraw({ type, source }) {
    let geometryFunction = null
    let maxPoints = null
    // 矩形
    if (type == 'Box') {
        type = "LineString"
        geometryFunction = function (coordinates, geometry) {
            if (!geometry) {
                // 多边形
                geometry = new ol.geom.Polygon(null)
            }
            var start = coordinates[0]
            var end = coordinates[1]
            geometry.setCoordinates([
                [start, [start[0], end[1]], end, [end[0], start[1]], start],
            ])
            return geometry
        }
        maxPoints = 2
    }
    // 正方形
    if (type == 'Square') {
        type = 'Circle'
        geometryFunction = ol.interaction.Draw.createRegularPolygon(4)
    }

    let draw = new ol.interaction.Draw({
        type,
        source,
        geometryFunction,
        maxPoints,
    })
    return draw
}